home *** CD-ROM | disk | FTP | other *** search
-
- GLUT Change Log
- ================
-
- NOTE: This document is potentially incomplete.
-
- GLUT 3.0 -> 3.1
- ----------------
-
- o The various shape rendering routines use single
- precision instead of double precision.
-
- o The box shape rendering routines don't generate
- redundant normals.
-
- o Make glutExtensionSupported more robust.
-
- o Added test20 for glutExtensionSupported.
-
- o Fixed Makefile in /usr/share/src/GLUT images.
-
- o Fixed multisample complication bug in dinospin.c
-
- o Fixed multiple includes in moth.c
-
- o Add contribed steam.c and glutmech demos (cool!).
-
- o Added fontdemo and evaltest in progs/examples.
-
- o Fix an HP/UX compilation problem with libglut.a
-
- o Fix GETTIMEOFDAY macro to take two args on a Sun. Why does
- Sun claim to be SVR4 when they have a BSD (2 parameter
- gettimeoday)?
-
- o Add an #ifdef to glut_win.c for working around Solaris
- 2.4 and 2.5 bug in XmuLookupStandardColormap.
-
- GLUT 2.3 -> 3.0
- ----------------
-
- o Major version change so GLUT 3.0 does have API additions!
-
- o Added yacme (yet another colormap editor) demo by Patrick Bouchaud
- (SGI Switzerland).
-
- o Updated glut.h so that GLUT_XLIB_IMPLEMENTATION=5 for 3.0
- and GLUT_API_VERSION=3 for 3.0.
-
- o Change all the sample programs to _not_ #include <GL/gl.h> or
- <GL/glu.h>. From the spec: "Because a very large window system
- software vendor (who will remain nameless) has an apparent
- inability to appreciate that OpenGL's API is independent of their
- window system API, portable ANSI C GLUT programs should not
- directly include <GL/gl.h> or <GL/glu.h>. Instead, ANSI C GLUT
- programs should rely on <GL/glut.h> to include the necessary
- OpenGL and GLU related header files." Sigh.
-
- o New Helvetica fonts: 10, 12, and 18 point versions.
- GLUT_BITMAP_HELVETICA_10, GLUT_BITMAP_HELVETICA_12, and
- GLUT_BITMAP_HELVETICA_18.
-
- o Implement glutFullScreen.
-
- o Implement glutSetCursor.
-
- o Implement glutGetModifiers.
-
- o Implement glutBitmapWidth and glutStrokeWidth.
-
- o Reimplement test2 to use glutGet(GLUT_ELAPSED_TIME) instead of
- the less than portable gettimeofday.
-
- o Ripped out all the support for compiling earlier GLUT API
- versions. It got very ugly and hard to maintain.
-
- o Added GLUT_LUMINANCE to GLUT verison 3 API and documented it, but
- it is not implemented as part of GLUT 3.0; should be in 3.1.
-
- o Added OpenVMS support to GLUT library with much help from Andy Vesper.
-
- o The display mode mask parameter for glutInitDisplayMode and the
- milliseconds parameter for glutTimerFunc are now of type unsigned
- int (previously unsigned long).
-
- o glutMenuStatus obsoletes glutMenuState. The callback registered
- by glutMenuStatus is triggered just like glutMenuState, except
- that an additional two parameters pass the X and Y location of the
- mouse when the menu status changes. This is to remedy problems a
- GLUT program using glutPassiveMotion might have re-sync'ing with
- the mouse position after menu use.
-
- o In previous releases of GLUT, various user input events were
- discarded when menus were in use. Now, these callbacks are
- generated. If the effect of the events should be performed after
- the menu is released, it is up to the GLUT program to delay the
- action.
-
- o Careful to ignore Enter/LeaveNotify events that come
- from the pop-up window pointer grab and ungrab (ie,
- Enter/LeaveNotify events not marked NotifyNormal for their mode.
- Eliminates "spurious" entry events.
-
- o Fixed bug with new work (like subwindow creation is a display callback)
- not being placed on the work queue and getting lost.
-
- o Fix memory corruption bug in caching of values returned by
- glXChooseVisual; no longer cache.
-
- o Fixed bug with glutCopyColormap sometimes not accurately
- re-establishing the WM_COLORMAP_WINDOWS property.
-
- o Fixed bug in deliver of enter and left callbacks. Before "virtual"
- enter and leave (X protocol teminology) were being reported. The
- semantic for the entry callback is it is entering and leaving
- a GLUT windows real estate that counts; not passing through
- the window hiearchy.
-
- o Add XFlush to __glutFinishMenu in case menu call back will want to
- read from a terminal window. In this case, the X server may still
- be grabbed since the XUngrabPointer hasn't been flushed out of
- Xlib's buffers to the X server for processing (deadlock!).
-
- o Don't allow modification of menus while in use. Spec ammended to
- say "It is illegal to create or destroy menus or change, add, or
- remove menu items while a menu (and any cascaded sub-menus) are in
- use (i.e., popped up)." Allowing modifications of menus while in
- use was dubious, the semantics would be unclear, and even more
- unfortunate, might vary from system to system.
-
- o Spec warns that you should not call routines that require a current
- window or menu when there is not a current window or menu (like
- before you create one or if you destroy the current one).
-
- o Fixed bug where glutSpecialFunc callback would only operate if
- a glutKeyboardFunc callback was also registered.
-
- o Fixed bug in color index visual selection so that largest number
- of bits of color resolution is preferred to smallest.
-
- o Fixed bug where if a double buffer X window was used to emulate
- a single buffer window, GLUT should set the OpenGL read mode
- to GL_FRONT (it was only changing the draw mode).
-
- o Fixed an obscure ordering bug with simultaneous glutPushWindow and
- glutPopWindow calls on different subwindows of the same window.
-
- o Now, it is a fatal error to receive an expose event with no
- display callback registered (it was stupid to allow mapped windows
- that made no attempt to redisplay). The spec has been changed to
- say NULL can not be passed to glutDisplayFunc; previously, it
- said this would disable the callback. Stupid. What was I thinking?
-
- o GLUT spec is indexed now and generally improved.
-
- o Support for IRIX 6.2's N32 and N64 object style to take advantage
- of new MIPS processor instruction sets. See lib/glut.n32 and
- lib/glut.n64 (IRIX 6.x only).
-
- o Fortran bindings also available for N32 and N64. See lib/fglut.n32
- and lib/fglut.n64.
-
- o Tests support the new API version 3 interfaces.
-
- o Contributed "bigtest" test program.
-
- o Added splatlogo example demonstrating pixel path functionality.
-
- o Added zoomdino program demonstrating use overlay rubber-banding.
-
- o Contributed demo programs: hanoi, hanoi2, gears, moth, text3d,
- and noof.
-
- o Contributed SGI stereo program: stereo-plane
-
- o Being out of colors in the default colormap without overlay planes
- will no longer lead to a fatal error when allocating the color gray
- for a pop-up menu. Instead, GLUT finds the closest matching color
- automatically. Help from Brian Paul to code this.
-
- o Eliminated Glut64.mk from all Makefile.sgi's
-
- GLUT 2.2 -> 2.3
- ----------------
-
- o Fix obscure problem with how X Input extension button press and
- release events get selected; it seems GLUT should also be
- selecting for the DeviceButtonPressGrab event class since this
- ensures that a release will be delivered to the same window as the
- press; that was my intent for how buttons presses and releases
- should work. I just didn't know you needed this obscure event
- class to be selected. Such a grab is the default for pointer
- events.
-
- o If windows are indirect, make sure that a glFinish is properly
- done for all windows that have been made current to recently (ie,
- last main loop iteration). This helps ensure windows don't get
- ahead of themselves. Previously, GLUT simply did a glFinish to
- whatever window GLUT happened to be made current to last at the
- end of each main loop iteration.
-
- o Fix what can be considered a bug where calling glutPostRedisplay
- within a display callback would not leave the redisplay set; this
- applies other routines that set work state needing to be done.
- Essentially, clear the workMask before the work callbacks are done
- instead of after. The new test15 tests this.
-
- o To support other OpenGL higher-level library that might want to
- be able to call glXMakeCurrent, GLUT should not try to track
- make current state and short circuit glXMakeCurrent calls when
- GLUT believes the window/context are already current. glXMakeCurrent
- should implement the same "short circuit" case, but can appropriately
- track the changed state from multiple libraries.
-
- o The glutRemoveMenuItem routine was totally busted previous to 2.3.
- Now it is fixed and test14 is a regression test for it.
-
- o Add Greg Humphreys's hanoi program to progs/contrib
-
- o Examples demonstrating Open Inventor used with GLUT found in
- progs/inventor
-
- o New progs/examples programs: abgr, triselect, texenv, stenciltst,
- stars, fogtst
-
- GLUT 2.1 -> GLUT 2.2
- ---------------------
-
- o Fixed bug in glutGet(GLUT_WINDOW_X) and glutGet(GLUT_WINDOW_Y).
-
- o Added Philip Winston's human kinetics demo in progs/demos/walker
- (COOL!).
-
- o Improved test suite.
-
- o Work around SunOS 4.x's non-ANSI compliant realloc.
-
- o Better handle delivery of reshape callback.
-
- o Pre-build stroke font C files to avoid having to rely on lex/yacc
- working correctly. Too many Linux systems missing flex/bison or
- having verisons that resulted in undefined symbols while building
- strokegen.
-
- o Better portability, mostly avoiding compiler warnings.
-
- o 64-bit clean (as far as I know!).
-
- o Compiles right for systems like DEC Alpha that support GLX 1.1 but
- do not support GLX_SGIS_multisample extension.
-
- o At Brian Paul's request for better Mesa support, changed colormap
- allocation to work if RGBA window has PsueoColor visual.
-
- o Fix Drew Bliss reported bug in colormap allocation (resulted in
- GLUT programs not correctly sharing colormaps).
-
- o Interesting bug involving the fact that XFlush may actually
- read X protocol into Xlib's internal buffers so if you call
- XFlush, then select on the X socket, you might find nothing to
- read, but when in fact there is data in the Xlib internal buffers
- that should be processed. Using ISDN (I guess it has weird
- network properties) showed this bug in a GLUT test13. The fix is
- to use XPending after XFlush.
-
- o Improve X Input documentation references in the GLUT spec.
-
- o Widen margins so spec kills less trees.
-
- o Clarify GLUT spec to explain glutGet values returned by
- GLUT_WINDOW_X, GLUT_WINDOW_Y, GLUT_WINDOW_WIDTH, and
- GLUT_WINDOW_HEIGHT as being returned in pixels.
-
- o Make sure consistently using reshape (and not resize) within GLUT
- spec.
-
- o GLUT spec should document that glutExtensionSupported,
- glutCreateWindow, and glutCreateSubwindow return int.
-
- GLUT 2.0 -> GLUT 2.1
- ---------------------
-
- o XCOMM comments in Imakefiles results in unusable Makefiles
- for systems that pre-date an X11R5-based imake.
-
- o The rings.c and worms.c examples use "float" returning
- versions of trigonometric functions (ie, cosf, sinf, etc.). While
- ANSI C reserves these names for their logical purpose, many
- systems do not implement these functions.
-
- o Calls to __glutWarning in glut_cindex in places lack
- variable %d argument.
-
- o Intended comments in lib/Imakefile cause avoiable
- warnings for some C pre-processors.
-
- o Old (pre-X11R6) versions of Xlib did not have XK_Page_Up
- and XK_Page_Down keysym defs in /usr/include/X11/keysymdef.h
- These are aliases to XK_Prior and XK_Next.
-
- o The X11R5 to_wfont derived strokegen program for converting
- PEX fonts to C data structures was full of memory access
- bugs. On most systems, they were not fatal. That's
- what I get for trying to steal PEX code I gues. :-)
-
- o Various Purify-detected memory access bugs within the
- GLUT library have been fixed.
-
- o Better Imakefile handling of lex usage in lib/glut/Imakefile
-
- o Better document colormap management routines.
-
- o Correctly document the prototype for glutCreateSubWindow
-
- o Add documentation usage hint explaining glutGetWindow
- and glutGetMenu can be used to determine what window
- or menu a callback is for.
-
- o Fix bug in glutDetachMenu
-
- o Fix bug in delivery of visibility callback for subwindows
- of an unmapped top-level window.
-
- o scube.c should use more likely to be optimized
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) instead of
- glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA)
-
- o Supression of various compiler detected warnings through
- the GLUT distribution.
-
- o Use of the "polygon offset" extension if available in origami.c
-
- o SGI mkmkfiles.sgi script doesn't make Fortran by default now;
- see instructions in README.fortran
-
- o Improvements to the test programs.
-
- o Avoid X Input extension calls when extension is present but
- no devices are available.
-
- GLUT 1.0 -> GLUT 2.0
- ---------------------
-
- o API extensions; see README.glut2
-
- o Bug fixes.
-
- o More demos.
-
- o Update documentation.
-
- - Mark
-